package org.dromara.xhlj.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import org.dromara.starter.jpacomment.annotation.SailColumn;
import org.dromara.starter.jpacomment.annotation.SailIndex;
import org.dromara.starter.jpacomment.annotation.SailTable;
import org.dromara.starter.jpacomment.enums.IndexType;
/**
 * 话题对象 xhlj_topic
 *
 * @author yf
 * @date 2024-07-28
 */

@Data
@TableName("xhlj_topic")
@Entity
@Table(name = "xhlj_topic")
@SailTable(comment = "话题表", indexs = {
    @SailIndex(name = "idx_topic_title", type = IndexType.BTREE,
       columns = {"topic_title"}
    ),    @SailIndex(name = "idx_topic_tags", type = IndexType.BTREE,
       columns = {"topic_tags"}
    ),    @SailIndex(name = "idx_create_time", type = IndexType.BTREE,
       columns = {"create_time"}
    ),    @SailIndex(name = "idx_user_id", type = IndexType.BTREE,
       columns = {"create_by"}
    )}
)
public class XhljTopic implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;
    public static final String TRANS_ID_TO_VO = "xhlj_topic_vo";
    public static final String TRANS_ID_TO_VO_LIST = "xhlj_topic_list";
    /**
     * 话题ID
     */
    @TableId(value = "topic_id", type = IdType.AUTO)
    @Id
    private Integer topicId;
    /**
     * 话题标题
     */
    @Column(name = "topic_title")
    @SailColumn(comment = "话题标题",type = "varchar(100)", defaultValue = "NULL")
    private String topicTitle;
    /**
     * 大会id
     */
    @SailColumn(comment = "大会id",type = "int", defaultValue = "NULL")
    @Column(name = "conference_info_id")
    private Integer conferenceInfoId;
    /**
     * 创建人wx_user（西湖论剑用户）
     */
    @SailColumn(comment = "创建人wx_user（西湖论剑用户）",type = "int", defaultValue = "NULL")
    @Column(name = "create_by")
    private Integer createBy;
    /**
     * 话题内容
     */
    @Column(name = "topic_content")
    @SailColumn(comment = "话题内容",type = "text", defaultValue = "NULL")
    private String topicContent;
    /**
     * 话题地点
     */
    @Column(name = "topic_location")
    @SailColumn(comment = "话题地点",type = "varchar(100)", defaultValue = "NULL")
    private String topicLocation;
    /**
     * 话题标签（0=安全特训营，1=新品发布，2=创新案例实践征集，3=奋进十一年，4=奋进十一年，5=直播探索，6=白皮书，7=大会海报，8=媒体中心精彩图片）
     */
    @Column(name = "topic_tags")
    @SailColumn(comment = "话题标签（0=安全特训营，1=新品发布，2=创新案例实践征集，3=奋进十一年，4=奋进十一年，5=直播探索，6=白皮书，7=大会海报，8=媒体中心精彩图片）",type = "char(3)", defaultValue = "0")
    private String topicTags;
    /**
     * 话题订阅量
     */
    @Column(name = "subscription_count")
    @SailColumn(comment = "话题订阅量",type = "int", defaultValue = "0")
    private Integer subscriptionCount;
    /**
     * 话题讨论数量
     */
    @Column(name = "topic_discussions")
    @SailColumn(comment = "话题讨论数量",type = "int", defaultValue = "0")
    private Integer topicDiscussions;
    /**
     * 话题图片
     */
    @Column(name = "topic_image")
    @SailColumn(comment = "话题图片",type = "text", defaultValue = "NULL")
    private String topicImage;
    /**
     * 话题视频
     */
    @Column(name = "topic_video_file")
    @SailColumn(comment = "话题视频",type = "text", defaultValue = "NULL")
    private String topicVideoFile;
    /**
     * 话题状态（0=未发布，1=已发布）
     */
    @Column(name = "topic_status")
    @SailColumn(comment = "话题状态（0=未发布，1=已发布）",type = "int", defaultValue = "0")
    private Integer topicStatus;
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @Column(name = "create_time")
    @SailColumn(comment = "创建时间",type = "timestamp", defaultValue = "CURRENT_TIMESTAMP")
    private Date createTime;
    /**
     * 删除标志（0未删除，2已删除）
     */
    @TableLogic
    @TableField(fill = FieldFill.INSERT)
    @Column(name = "del_flag")
    @SailColumn(comment = "删除标志（0未删除，2已删除）",type = "char(1)", defaultValue = "0")
    private String delFlag;
}
